home *** CD-ROM | disk | FTP | other *** search
/ 40 Best Windows 95 Games / 40 Best Windows 95 Games (SoftKey) (TLC Properties) (1997).iso / SETUP.MST < prev    next >
Text File  |  1996-03-09  |  7KB  |  239 lines

  1. '**************************************************************************
  2. '*                         CD Guide Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. CONST DEFAULT_DEST$ = "C:\SOFTKEY\CDGUIDE"
  22. CONST PROGRAM_GROUP$ = "SoftKey CD Guide"
  23. CONST PROGRAM_TITLE$ = "SoftKey CD Guide"
  24. CONST PROGRAM_EXE$ = "cdguide.exe"
  25. CONST PROGRAM_ICON$ = "CDGUIDE.ICO"
  26. CONST PROGRAM_INI$ = "CDGUIDE.INI"
  27.  
  28. ''Bitmap ID
  29. CONST LOGO = 1
  30.  
  31. GLOBAL DEST$        ''Default destination directory.
  32. GLOBAL CDROMDRV$    ''CD-ROM Drive Letter.
  33. GLOBAL OPTCUR$      ''Option selection from option dialog.
  34.  
  35. CONST WS_VISIBLE=&H10000000
  36. CONST WS_BORDER =&H00800000
  37. CONST WS_CLIPCHILDREN =&H02000000
  38. CONST GWL_STYLE =-16
  39. CONST SW_SHOWMAXIMIZED=3
  40. CONST SZ_PRODUCT$ = "40 Games for Windows 95"
  41. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  42. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG     ''this declaration must all be on one line
  43. DECLARE SUB Install
  44. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  45.  
  46.  
  47. INIT:
  48.  
  49.     hWnd%=HwndFrame()
  50.     i1&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  51.     j1%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  52.  
  53.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  54.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  55.  
  56.     SetBitmap CUIDLL$, LOGO
  57.     SetTitle "CD Guide Setup"
  58.  
  59.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  60.     IF szInf$ = "" THEN
  61.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  62.     END IF
  63.     ReadInfFile szInf$
  64.  
  65.     DEST$ = DEFAULT_DEST$
  66.     CDROMDRV$ = MID$(GetSymbolValue("STF_SRCDIR"), 1, 1) + ":"
  67.  
  68. '$IFDEF DEBUG
  69.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  70.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  71.     IF IsDriveValid(WinDrive$) = 0 THEN
  72.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  73.         GOTO QUIT
  74.     END IF
  75. '$ENDIF ''DEBUG
  76.  
  77.  
  78. WELCOME:
  79.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  80.     IF sz$ = "CONTINUE" THEN
  81.         UIPop 1
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO WELCOME
  85.     END IF
  86.  
  87.  
  88.  
  89. GETPATH:
  90.     SetSymbolValue "EditTextIn", DEST$
  91.     SetSymbolValue "EditFocus", "END"
  92. GETPATHL1:
  93.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  94.     DEST$ = GetSymbolValue("EditTextOut")
  95.  
  96.     IF sz$ = "CONTINUE" THEN
  97.         IF IsDirWritable(DEST$) = 0 THEN
  98.             GOSUB BADPATH
  99.             GOTO GETPATHL1
  100.         END IF
  101.         UIPop 1
  102.     ELSEIF sz$ = "REACTIVATE" THEN
  103.         GOTO GETPATHL1
  104.     ELSEIF sz$ = "BACK" THEN
  105.         UIPop 1
  106.         GOTO WELCOME
  107.     ELSE
  108.         GOSUB ASKQUIT
  109.         GOTO GETPATH
  110.     END IF
  111.  
  112.  
  113.     Install
  114.  
  115.  
  116.  
  117. QUIT:
  118.     ON ERROR GOTO ERRQUIT
  119.  
  120.     IF ERR = 0 THEN
  121.         dlg% = EXITSUCCESS
  122.     ELSEIF ERR = STFQUIT THEN
  123.         dlg% = EXITQUIT
  124.     ELSE
  125.         dlg% = EXITFAILURE
  126.     END IF
  127. QUITL1:
  128.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  129.     IF sz$ = "REACTIVATE" THEN
  130.         GOTO QUITL1
  131.     END IF
  132.     UIPop 1
  133.  
  134.     END
  135.  
  136. ERRQUIT:
  137.     i% = DoMsgBox("Setup sources were corrupted, call please call Limelight Publishing Technial Support at (317) 487-8807.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  138.     END
  139.  
  140.  
  141.  
  142. BADPATH:
  143.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  144.     IF sz$ = "REACTIVATE" THEN
  145.         GOTO BADPATH
  146.     END IF
  147.     UIPop 1
  148.     RETURN
  149.  
  150.  
  151.  
  152. ASKQUIT:
  153.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  154.  
  155.     IF sz$ = "EXIT" THEN
  156.         UIPopAll
  157.         ERROR STFQUIT
  158.     ELSEIF sz$ = "REACTIVATE" THEN
  159.         GOTO ASKQUIT
  160.     ELSE
  161.         UIPop 1
  162.     END IF
  163.     RETURN
  164.  
  165.  
  166.  
  167. '**
  168. '** Purpose:
  169. '**     Builds the copy list and performs all installation operations.
  170. '** Arguments:
  171. '**     none.
  172. '** Returns:
  173. '**     none.
  174. '*************************************************************************
  175. SUB Install STATIC
  176.  
  177.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  178.     CreateDir DEST$, cmoNone
  179.  
  180.     OpenLogFile MakePath(DEST$, "SETUP.ILG"), 0
  181.     WriteToLogFile ""
  182.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  183. '    WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  184.     WriteToLogFile ""
  185.     WriteToLogFile "May have had to create the directory: " + DEST$
  186.     WriteToLogFile ""
  187.  
  188. '    AddSectionKeyFileToCopyList "Main", OPTCUR$, SrcDir$, DEST$
  189. '    AddSectionKeyFileToCopyList "Dynalinks", OPTCUR$, SrcDir$, GetWindowsDir + "SYSTEM\"
  190.     AddSectionKeyFileToCopyList "Main", "1", SrcDir$, DEST$
  191.     AddSectionKeyFileToCopyList "Dynalinks", "1", SrcDir$, GetWindowsDir + "SYSTEM\"
  192.     CopyFilesInCopyList
  193.  
  194.     ' Create INI File, store CD-ROM Drive letter in it
  195.     ini$ = MakePath(GetWindowsDir, PROGRAM_INI$)
  196.     CreateIniKeyValue ini$, "Settings", "CDROMDrive", CDROMDRV$, cmoOverwrite
  197.     CreateIniKeyValue ini$, "Options", "SystemDB", MakePath(DEST$,"system.mda"), cmoOverwrite
  198.     CreateIniKeyValue ini$, "Settings", "RunFromCD", "1", cmoOverwrite
  199.  
  200.     ' Auto Start settings
  201.     CreateIniKeyValue ini$, "Auto Start", "AppName", SZ_PRODUCT$, cmoOverwrite
  202.     CreateIniKeyValue ini$, "Auto Start", "Setting", "2", cmoOverwrite
  203.     CreateIniKeyValue ini$, "Auto Start", "NumFiles", "1", cmoOverwrite
  204.     CreateIniKeyValue ini$, "Auto Start", "File01", MakePath(DEST$,"system.mda"), cmoOverwrite
  205.     CreateIniKeyValue ini$, "Auto Start", "EXE", "cdguide.exe", cmoOverwrite
  206.  
  207.     CreateProgmanGroup PROGRAM_GROUP$, "", cmoNone
  208.     ShowProgmanGroup  PROGRAM_GROUP$, 1, cmoNone
  209.     CreateProgmanItem PROGRAM_GROUP$, PROGRAM_TITLE$, PROGRAM_EXE$, MakePath(DEST$,PROGRAM_ICON$)+",0,0,0,"+CDROMDRV$ + "\", cmoOverwrite
  210.  
  211.     CloseLogFile
  212.  
  213. END SUB
  214.  
  215.  
  216.  
  217. '**
  218. '** Purpose:
  219. '**     Appends a file name to the end of a directory path,
  220. '**     inserting a backslash character as needed.
  221. '** Arguments:
  222. '**     szDir$  - full directory path (with optional ending "\")
  223. '**     szFile$ - filename to append to directory
  224. '** Returns:
  225. '**     Resulting fully qualified path name.
  226. '*************************************************************************
  227. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  228.     IF szDir$ = "" THEN
  229.         MakePath = szFile$
  230.     ELSEIF szFile$ = "" THEN
  231.         MakePath = szDir$
  232.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  233.         MakePath = szDir$ + szFile$
  234.     ELSE
  235.         MakePath = szDir$ + "\" + szFile$
  236.     END IF
  237. END FUNCTION
  238.  
  239.